#ifndef __GAME_SERVER_H__
#define __GAME_SERVER_H__

class PacketDecoder;

class GameServer: public singleton<GameServer>
{
public:
	GameServer(void);
	~GameServer(void);
public:
	void SetSocketServer(ISocketServer* pSocketServer){m_pSocketServer = pSocketServer;};
	ISocketServer* GetSocketServer(){return m_pSocketServer;}
	std::string GetServerPath();

	void SendDataToDataServer(const void* pData,size_t nDataLen);
	void OnExit();
	void Register();
	void Initialize();
	void loadCSV();
	Int32 Run();
	
	
	void sendSystemMessage(std::string message,bool bConvert2utf8 = true);
	Int32 GetValueMaxMinBetween(Int32 nMax, Int32 nMin);
private:
	ISocketServer* m_pSocketServer;
};

//void RegisterMethod(Int32 id, GameMethod method);
#endif
